package com.chd.ledger_server.domain;

import lombok.Data;

import java.util.HashMap;
import java.util.Map;

/**
 * 结果集封装
 */
@Data
public class Result<T> {
    private T data;//返回数据

    private Integer code;//状态码

    private String msg;//提示信息

    private Map<String, Object> map = new HashMap<String, Object>();//动态数据，根据需要为返回值添加信息

    /**
     * 带参的成功返回
     */
    public static <T> Result<T> buildSuccess(T t){
        Result<T> r = new Result<>();
        r.data = t;
        r.code = 1;
        r.msg = "操作成功！";
        return r;
    }

    /**
     * 不带参的成功返回
     */
    public static <T> Result<T> buildSuccess(){
        return Result.buildSuccess(null);
    }

    /**
     * 失败返回
     */
    public static <T> Result<T> buildFail(String message){
        Result<T> r = new Result<>();
        r.code = 0;
        r.msg = message;
        return r;
    }

    /**
     * 动态添加数据
     */
    public  Result<T> add(String key, Object value){
        this.map.put(key,value);
        return this;
    }


}
